1. The Field of the Invention
The present invention relates to the field of software installation technology. Specifically, the present invention relates to methods, systems, computer program products and data structures for installing software on a mobile computing device using the rollback and security features of a configuration manager.
2. Background and Related Art
Computers have revolutionized our way of life. The functional components of a general-purpose computing device may be divided into two general categories; namely, hardware and software. The hardware includes, for example, one or more processors, various types of memory (e.g., RAM, ROM, FLASH, hard drive, CD-ROM and the like), user interfaces (e.g., a monitor, keyboard, mouse, speakers, printer, scanner and the like), and networking devices (e.g., modem, network interface card, antenna and the like). Software contains instructions that, when executed by a processor, controls the various operations of the hardware so that the hardware interacts in a manner that accomplishes certain tasks. Typical computing devices contain a variety of software that facilitates a wide array of functionality.
Often, is desirable to add additional software to a computing device in order to further improve the operational capability of the computing device. In order to install the software, the computing device gains access to an installation file. The installation file typically contains a number of compressed files that ultimately need to extracted and stored in a suitable directory location on the computing device. The installation file also includes a series of instructions that are followed in order to properly install the extracted files. For example, such instructions may direct the computing device to extract a file, move a file, copy a file, delete a file, or set configuration information.
A typical installation process is essentially initiated by the user of the computing device. For example, the user may purchase software on computer-readable media such as a hard disk, CDROM or the like, or perhaps the user may download the software over a network. In mobile computing devices, however, a relatively new form of installation is taking hold. In particular, the mobile computing device receives a notification that new software is available, and then the user is typically given an option to accept the new software. If accepted, the software may potentially be downloaded to the mobile computing device where it is installed.
Operating systems for conventional general-purpose computers typically provide some level of security in ensuring that processes and individuals are appropriately limited in the types of operations they may perform on certain files and in certain directories. However, operating systems for mobile devices may have reduced functionality due to the relatively limited memory and processing capabilities of mobile computing devices as compared to laptop or desktop computers.
Often, such operating systems may be relatively limited in the types of security control due to such processing and memory limitations. Nevertheless, the trustworthiness of software providers may be more in question when downloading an installation file in response to an asynchronous notification to a mobile computing device. Accordingly, what is desired are systems, methods, computer program products, and data structures for providing security when installing software in an environment in which processing and memory capacities are limited.
In addition, installation processes may fail for one reason or another. For example, perhaps the computing system crashes, or perhaps the installation software attempts to manipulate files, directories, or configuration settings that the installation software is not entitled to manipulate. If the software installation fails, the operating system may store erroneous configuration settings that presuppose that the software installation will be successful. In addition, files that were part of the installation may be stored on the computing device, even though those files are useless since the installation was interrupted. The erroneous configuration settings affect the proper operation of the computing device. In addition, the useless files occupy valuable memory space, which is especially detrimental in limited memory environments such as on mobile computing devices. Accordingly, what is further desired are systems, methods, computer program products and data structures for reversing the effects of an installation should the installation fail in a mobile computing environment.